Operations:

Format

Syntax:

Operation:

Operands:

Architecture revision

Opcode

1

psubxs.uh Rd, Rx, Ry

Rd[31:16] =  SATSU(ZE(Rx[31:16], 17) - ZE(Ry[15:0], 17), 16) ;
Rd[15:0] = SATSU(ZE(Rx[15:0], 17) - ZE(Ry[31:16], 17), 16);
{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000001011

Rd

3

4

5

4

12

4

2

psubxs.sh Rd, Rx, Ry

Rd[31:16] = SATS(SE(Rx[31:16], 17) - SE(Ry[15:0], 17), 16) ;
Rd[15:0] = SATS(SE(Rx[15:0], 17) - SE(Ry[31:16], 17), 16);
{d, x, y} ∈ {0, 1, …, 15}

Rev1+

111

Rx

00000

Ry

001000000111

Rd

3

4

5

4

12

4

Description

Subtract the bottom halfword of Ry from the top halfword of Rx and the top halfword of Ry from the bottom halfword of Rx. The resulting halfwords are saturated to unsigned halfwords (psubxh.uh) or signed halfwords (psubxh.sh) and then packed together in the destination regis- ter.

Status Flags:

Q:

Flag set if saturation occured in one or more of the partial operations.

V:

Not affected.

N:

Not affected.

Z:

Not affected.

C:

Not affected.